package day09.ExceptionTest;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 日期字符串排序
 * 2018-7-23
 * 2018-7-9
 * 重写比较器 compare(o1, o2)
 * 不能添加其他异常管道
 */
public class Test4 {
    public static void main(String[] args) {
        f();
    }

    private static void f() {
        List<String> list = new ArrayList<>();
        Collections.addAll(list,
                "2018-7-9", "2018-7-2", "2018-7-21", "2018-7-30", "2018-7-4");
        Collections.sort(list);
        System.out.println(list); //[2018-7-2, 2018-7-21, 2018-7-30, 2018-7-4, 2018-7-9]
        Collections.sort(list, (String o1, String o2) -> {
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                try{
                    Date d1 = sdf.parse(o1);
                    Date d2 = sdf.parse(o2);
                    return d1.compareTo(d2);
                }catch (ParseException e){
                    // 包装成能抛出的类型，再抛
                    throw new RuntimeException(e);
                }
        });
        System.out.println(list); //[2018-7-2, 2018-7-4, 2018-7-9, 2018-7-21, 2018-7-30]
    }
}
